package com.weixin.engine.models.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.weixin.common.dto.UserDTO;
import com.weixin.engine.models.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author: WangChunHui
 * @Date: 2020-04-16 22:36
 * @Description:
 */
public interface UserMapper extends BaseMapper<User> {

    /**
     * 如果自定义的方法还希望能够使用MP提供的Wrapper条件构造器，则需要如下写法
     *
     * @param userWrapper
     * @return
     */
    List<User> selectByMyWrapper(@Param(Constants.WRAPPER) Wrapper<User> userWrapper);

    /**
     * 和Mybatis使用方法一致
     *
     * @param name
     * @return
     */
    List<User> selectByName(@Param("name") String name);

    /**
     * 根据条件分页查询
     *
     * @param page    分页条件
     * @param userDTO 查询条件
     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.weixin.engine.sss.pojo.User>
     * @author wangchunhui
     * @date 2023/5/29 15:00
     */
    Page<User> searchListPage(Page<User> page, @Param("dto") UserDTO userDTO);
}
